iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
自我挑戰組

C# 由淺入深系列 第 4

Day4 Array 4 + List1

  • 分享至 

  • xImage
  •  

Array.Copy()

Array.Copy()是 C# 中用來複製一個陣列的內容到另一個陣列中的方法。這個方法可以用來複製整個陣列或部分陣列,並且可以指定從源陣列和目標陣列的哪個索引位置開始複製。
Array.Copy() 方法有多個重載,最常見的重載形式如下:

public static void Copy(Array sourceArray, Array destinationArray, int length);
public static void Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
  • sourceArray: 要複製數據的源數組。
  • destinationArray: 要將數據複製到的目標數組。
  • length: 要複製的元素數量。
  • sourceIndex (可選): 開始複製的源數組的索引位置。
  • destinationIndex (可選): 開始將元素複製到目標數組的索引位置。
using System;

class Program
{
    static void Main()
    {
        // 定義源數組
        int[] sourceArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        
        // 定義目標數組,大小為 10
        int[] destinationArray = new int[10];
        
        // 將 sourceArray 的第 3 到第 7 個元素(4, 5, 6, 7, 8)複製到 destinationArray 的索引 5 開始的位置
        Array.Copy(sourceArray, 3, destinationArray, 5, 5);

        // 打印目標數組
        Console.WriteLine("Destination Array:");
        foreach (int item in destinationArray)
        {
            Console.Write(item + " "); // Output: 0 0 0 0 0 4 5 6 7 8
        }
    }
}

在這個例子中:

  1. 源數組 (sourceArray): 這是一個包含 10 個整數的數組 { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }。
  2. 目標數組 (destinationArray): 初始化為 10 個元素的空數組,所有值默認為 0。
  3. Copy(): sourceArray, 3: 從 source array 的 index 3 開始,對應 4。
    destinationArray, 5: 複製到目標 array 的 index 5 開始的位置。
    5: 要複製的元素數量是 5,即複製 4, 5, 6, 7, 8。
  4. 結果: 目標數組 destinationArray 的前五個元素保持為默認值 0,而從 index 5 開始,填補了來自 sourceArray 的 4, 5, 6, 7, 8。

List

在 C# 中,List 是一種通用的集合類型,用來儲存一組同類型的對象。相較於陣列,List 的大小是可變的,可以根據需要動態增加或移除元素。
以下是一些關於 C# List 的基本介紹:


using System;
using System.Collections.Generic; // 使用 List 需要這個命名空間

class Program
{
    static void Main()
    {
        // 1. 宣告並初始化 List
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; // 一個包含 5 個整數的 List

        // 2. 存取和修改 List 元素
        int firstNumber = numbers[0]; // 取得 List 中的第一個元素
        numbers[1] = 10; // 將 List 中的第二個元素設為 10

        // 3. 遍歷 List
        // 使用 for 迴圈
        for (int i = 0; i < numbers.Count; i++)
        {
            Console.WriteLine("For loop: " + numbers[i]);
        }

        // 使用 foreach 迴圈
        foreach (int number in numbers)
        {
            Console.WriteLine("Foreach loop: " + number);
        }

        // 4. 添加和刪除元素
        numbers.Add(6); // 在 List 末尾添加一個元素
        numbers.Remove(3); // 移除 List 中第一個出現的值為 3 的元素
        numbers.Insert(2, 99); // 在索引 2 的位置插入 99

        // 5. List.Sort()
        List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 3 }; // 宣告並初始化 List
        unsortedNumbers.Sort(); // 使用 Sort() 方法對 List 進行排序

        // 輸出排序後的 List
        Console.WriteLine("排序後:");
        foreach (int number in unsortedNumbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine();

        // 6. List.Reverse()
        numbers.Reverse(); // 使用 Reverse() 方法將 List 元素順序反轉

        // 輸出反轉後的 List
        Console.WriteLine("反轉後:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine();

        // 7. 檢查元素是否存在
        bool containsThree = numbers.Contains(3); // 檢查 List 是否包含 3
        Console.WriteLine("List contains 3: " + containsThree);

        // 8. 取得元素索引
        int indexOfTen = numbers.IndexOf(10); // 取得值為 10 的元素索引
        Console.WriteLine("Index of 10: " + indexOfTen);

        // 9. 清空 List
        numbers.Clear(); // 使用 Clear() 方法清空 List

        // 確認 List 是否清空
        Console.WriteLine("List count after clear: " + numbers.Count); // Output: 0
    }
}

說明

  1. 宣告並初始化 List:使用 List 來宣告一個包含整數的 List,並直接使用初始值進行初始化。
  2. 存取和修改 List 元素:通過索引存取 List 元素,並修改特定位置的元素值。
  3. 遍歷 List:使用 for 迴圈和 foreach 迴圈來遍歷 List 中的元素。
  4. 添加和刪除元素:使用 Add()、Remove() 和 Insert() 方法來添加和刪除 List 中的元素。
  5. List.Sort():使用 Sort() 方法對 List 進行排序。
  6. List.Reverse():使用 Reverse() 方法反轉 List 中元素的順序。
  7. 檢查元素是否存在:使用 Contains() 方法檢查特定元素是否存在於 List 中。
  8. 取得元素索引:使用 IndexOf() 方法取得 List 中特定元素的索引。
  9. 清空 List:使用 Clear() 方法清空 List 中的所有元素。

上一篇
Day3 Array 3
下一篇
Day5 List2
系列文
C# 由淺入深11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言